package com.xdcplus.web.service.wip;

import com.xdcplus.mp.service.BaseService;
import com.xdcplus.pager.vo.PageVO;
import com.xdcplus.web.common.pojo.dto.wip.WipMarkingReminderDTO;
import com.xdcplus.web.common.pojo.dto.wip.WipMarkingReminderFilterDTO;
import com.xdcplus.web.common.pojo.entity.wip.WipMarkingReminder;
import com.xdcplus.web.common.pojo.vo.wip.WipMarkingReminderVO;

import java.util.List;


/**
 * 打标提醒人员表(推送钉钉)(WipMarkingReminder)表服务接口层
 *
 * @author Devin.sang
 * @since 2023-05-15 22:05:44
 */
public interface WipMarkingReminderService extends BaseService<WipMarkingReminder, WipMarkingReminder, WipMarkingReminderVO> {

    /**
     * 添加打标提醒人员表(推送钉钉)(WipMarkingReminder)
     *
     * @param wipMarkingReminderDTO 打标提醒人员表(推送钉钉)(WipMarkingReminderDTO)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveWipMarkingReminder(WipMarkingReminderDTO wipMarkingReminderDTO);

    /**
     * 修改打标提醒人员表(推送钉钉)(WipMarkingReminder)
     *
     * @param wipMarkingReminderDTO 打标提醒人员表(推送钉钉)(WipMarkingReminderDTO)
     * @return {@link Boolean} 是否成功
     */
    Boolean updateWipMarkingReminder(WipMarkingReminderDTO wipMarkingReminderDTO);

    /**
     * 批量保存或更新打标提醒人员表(推送钉钉)(WipMarkingReminder)
     *
     * @param wipMarkingReminderList 打标提醒人员表(推送钉钉)(WipMarkingReminderList)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveOrUpdateBatch(List<WipMarkingReminder> wipMarkingReminderList);

    /**
     * 批量保存或更新打标提醒人员表(推送钉钉)(WipMarkingReminderDTOList)
     *
     * @param wipMarkingReminderDTOList 打标提醒人员表(推送钉钉)(WipMarkingReminderDTOList)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveOrUpdateBatchByDTOList(List<WipMarkingReminderDTO> wipMarkingReminderDTOList);

    /**
     * 删除打标提醒人员表(推送钉钉)(WipMarkingReminder)
     *
     * @param id 打标提醒人员表(推送钉钉)(WipMarkingReminder)主键
     * @return {@link Boolean} 是否成功
     */
    Boolean deleteWipMarkingReminderLogical(Long id);
    
    Boolean deleteWipMarkingReminderByIds(String ids);

    /**
     * 查询打标提醒人员表(推送钉钉)(WipMarkingReminder)
     *
     * @param wipMarkingReminderFilterDTO 过程状态过滤DTO
     * @return {@link PageVO<WipMarkingReminderVO>} 状态信息
     */
    List<WipMarkingReminderVO> queryWipMarkingReminderVOList(WipMarkingReminderFilterDTO wipMarkingReminderFilterDTO);

    /**
     * 查询打标提醒人员表(推送钉钉)(WipMarkingReminder)
     *
     * @param wipMarkingReminderFilterDTO 过程状态过滤DTO
     * @return {@link PageVO<WipMarkingReminderVO>} 状态信息
     */
    PageVO<WipMarkingReminderVO> queryWipMarkingReminder(WipMarkingReminderFilterDTO wipMarkingReminderFilterDTO);

    /**
     * 查询一个
     *
     * @param id 打标提醒人员表(推送钉钉)(WipMarkingReminder)主键
     * @return {@link WipMarkingReminderVO} 打标提醒人员表(推送钉钉)(WipMarkingReminder)信息
     */
    WipMarkingReminderVO queryWipMarkingReminderById(Long id);
}
